﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace RoleHelper
{
    public partial class Clases : Form
    {
        public Clases()
        {
            InitializeComponent();
        }

        private List<string> listaatributos;

        private void bindingSource1_CurrentChanged(object sender, EventArgs e)
        {

        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            List<string> campos = new List<string>();
            campos.Add("Nombre");
            campos.Add("Atributo_ppal");
            campos.Add("Descripcion");
            campos.Add("Atributo_ppal2");
            List<string> datos = new List<string>();
            datos.Add(tbNombre.Text);
            switch (cbAtrib.Text)
            {
                case "Fuerza":
                    datos.Add("FUE");
                    break;
                case "Agilidad":
                    datos.Add("AGI");
                    break;
                case "Constitucion":
                    datos.Add("CON");
                    break;

            }
            datos.Add(tbDesc.Text);
            switch (cbAtrib2.Text)
            {
                case "Fuerza":
                    datos.Add("FUE");
                    break;
                case "Agilidad":
                    datos.Add("AGI");
                    break;
                case "Constitucion":
                    datos.Add("CON");
                    break;
            }
            Program.bdatos.crearInsert(campos, datos, "clases");
            if(Program.bdatos.ejecutarInsert() == false)
            {
                MessageBox.Show("Algo falla, la query es:\n"+Program.bdatos.getquery(), "Fallo");
            }
            else
            {
                tbDesc.Clear();
                tbNombre.Clear();
                cbAtrib.Text = "";
                cbAtrib2.Text = "";
                refreshcb1();
                refreshcb2();
                refrescarLista();
            }
        }

        private void Clases_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'rolecosasDataSet.clases' Puede moverla o quitarla según sea necesario.
            //this.clasesTableAdapter.Fill(this.rolecosasDataSet.clases);
            listaatributos = new List<string>();
            listaatributos.Add("Agilidad");
            listaatributos.Add("Constitucion");
            listaatributos.Add("Memoria");
            listaatributos.Add("Razon");
            listaatributos.Add("Autodisciplina");
            listaatributos.Add("Empatia");
            listaatributos.Add("Presencia");
            listaatributos.Add("Rapidez");
            listaatributos.Add("Fuerza");
            refrescarLista();
        }

        private void cbAtrib_SelectedIndexChanged(object sender, EventArgs e)
        {
            refreshcb2();
            cbAtrib2.Items.Remove(cbAtrib.Text);
            //cbAtrib2.Items.RemoveAt(cbAtrib.SelectedIndex);
        }

        private void refreshcb2()
        {
            cbAtrib2.Items.Clear();
            for (int i = 0; i < listaatributos.Count; i++)
            {
                cbAtrib2.Items.Add(listaatributos[i]);
            }
        }

        private void cbAtrib2_SelectedIndexChanged(object sender, EventArgs e)
        {
            refreshcb1();
            cbAtrib.Items.Remove(cbAtrib2.Text);
            //cbAtrib.Items.RemoveAt(cbAtrib2.SelectedIndex);
        }
        private void refreshcb1()
        {
            cbAtrib.Items.Clear();
            for (int i = 0; i < listaatributos.Count; i++)
            {
                cbAtrib.Items.Add(listaatributos[i]);
            }
        }

        /*private void Clases_FormClosing(object sender, FormClosingEventArgs e)
        {
            //if (inser.cerrar() == false)
            if(Program.bdatos.cerrar() == false)
            {
                MessageBox.Show("Ha ocurrido un error cerrando la conexion con la base de datos");
            }
        }*/

        private void refrescarLista()
        {
            listClases.Items.Clear();
            List<string> campos = new List<string>();
            campos.Add("Nombre");
            campos.Add("Atributo_ppal");
            campos.Add("Atributo_ppal2");
            campos.Add("Descripcion");
            Program.bdatos.crearSimpleSelect(campos, "clases");
            List<List<string>> res = Program.bdatos.ejecutarSelect();
            for (int i = 0; i < res.Count; i++)
            {
                string[] añclase = new string[campos.Count+1];
                añclase[0] = "";
                for (int j= 1; j <= campos.Count; j++)
                {
                    añclase[j] = res[i][j - 1];
                }
                ListViewItem nueva = new ListViewItem(añclase);
                listClases.Items.Add(nueva);
            }
        }
    }
}
